package com.cheng.commonlibrary.utlis;

import android.text.TextUtils;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * @ClassName: ComputeUtils
 * @Description: 商业计算类
 * @author: MrZhang
 * @data: 2020/2/12  10:19
 */
public final class ComputeUtils {

    /**
     * double 类型的运算
     *
     * @param first  第一个数
     * @param second 第二个数
     * @param val    运算方式（+、-、*、/）
     */
    public static final double doubleCalculations(String first, String second, char val) {
        if (TextUtils.isEmpty(first)) {
            first = "0";
        }
        if (TextUtils.isEmpty(second)) {
            second = "0";
        }
        BigDecimal firstD = new BigDecimal(first);
        BigDecimal secondD = new BigDecimal(second);
        switch (val) {
            default:
            case '+':
                return firstD.add(secondD).doubleValue();
            case '-':
                return firstD.subtract(secondD).doubleValue();
            case '*':
                return firstD.multiply(secondD).doubleValue();
            case '/':
                if (Double.valueOf(second) == 0) {
                    return 0.00;
                }
                return firstD.divide(secondD, 4, RoundingMode.HALF_UP).doubleValue();
        }
    }
}
